No queria volver a preguntar, una tontera pero se me escapa de las manos, saben estoy exportando datos a la base de datos, atraves de un archivo de texto los envio a una grilla y luego de la grilla los envio a la base de datos atraves de un cotrol de datos adodc, pero me no deja insertar los datos por que dice que la clave primaria esta violada, pero no es asi los datos no se encuentran en la base de datos, por ende no puede ser clave repetida, este problemita me tiene muy mal, no se que probar, he probado realizando el insert atraves de SQL PLUS
y los mismo datos los ingresa bien si ningun problema, he llegado apensar que es el control que me pertuba, espero que alguien que lea esto pueda ayudarme,
la primera ves el error lo envia cuando pasa por el update y las veces posteriores los envia en addnew y el update
gracias (les envio el malogrado codigo)
Private Sub Co_Grabar_Click()
Dim salida1
Dim fs, f, ss
NombreAux = CD_Impo.FileTitle
nombre_archivo = NombreAux
NombreArch = Mid(NombreAux, 1, Len(NombreAux) - 4)
salida1 = 0
RUTA = Busca_Trayecto(BD_1)
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(nombre_archivo)
ss = UCase(f.Name) & " utiliza " & f.Size & " bytes."
bytearchivo = f.Size
tabla = C_Tablas.Text
separador = separa
pDecimal = pdeci
Dim filavar As Integer
Dim coluvar As Integer
Dim mensaje As String
Dim Typedato As String
ucontadoring = 0
If Len(tabla) = 0 Then
MsgBox ("Ingrese un Nombre de Tabla")
Else
If Len(BD_1) = 0 Then
MsgBox ("Ingrese el Nombre de Archivo a Exportar")
Else
NombreArch = Trim(NombreArch) + "_carga.err"
Open NombreArch For Output As #2
filavar = 1 + filini
coluvar = 1
Ado_Tabla.UserName = st_login
Ado_Tabla.Password = st_passw
Ado_Tabla.RecordSource = UCase(tabla)
Ado_Tabla.Refresh
Do While filavar - 1 < grilla.Rows - 1
ucontadoring = ucontadoring + 1
grilla.Row = filavar - 1
On Error GoTo Error_Graba1
Ado_Tabla.Recordset.AddNew
Do While coluvar - 1 < grilla.Cols
grilla.Col = coluvar - 1
Typedato = (Ado_Tabla.Recordset.Fields(coluvar - 1).Type)
If Typedato = "131" Then
If grilla.Text = "" Then
paso = 0
Else
paso = Trim(grilla.Text)
End If
Ado_Tabla.Recordset.Fields(coluvar - 1) = paso
Else
If grilla.Text = "" Then
StDato = " "
Else
StDato = grilla.Text
End If
Ado_Tabla.Recordset.Fields(coluvar - 1) = StDato
End If
coluvar = coluvar + 1
Loop
On Error GoTo error_graba2
Ado_Tabla.Recordset.Update
coluvar = 1
filavar = filavar + 1
ucontadoring = ucontadoring + 1
Loop
salida1 = "Se Ingresaron " + CStr(filfin - ucontadorsal) + " de " + CStr(filfin) + ". Rechazados " + CStr(ucontadorsal) + " Registros"
MsgBox ("Carga Finalizada" + Chr(13) + salida1)
End If
End If
Close #2
Set fs = CreateObject("Scripting.FileSystemObject")
lugar = RUTA + "" + NombreArch
MiTamano = FileLen(lugar)
If MiTamano = 0 Then
fs.DeleteFile (lugar)
End If
Exit Sub
Error_Graba1:
des = Err.Description
Resume Next
error_graba2:
des = Err.Description
cerror = Err.Number
ucontadorsal = ucontadorsal + 1
Write #2, ucontadoring; des
Resume Next
End Sub